package com.somekim.mythread;

/**
 * 实例变量与线程安全 - 数据不共享
 * @author zdl
 * @version v1.0
 * @date 2019/8/27
 */
public class MyThread4 extends Thread{
    /**
     * 自定义线程类中的实例变量针对其他线程可以有共享与不共享之分，这在多个线程之间
     * 进行交互时是很重要的一个技术点。
     */
    private int count = 5;
    public MyThread4(String name) {
        super();
        //设置线程名称
        this.setName(name);
    }

    @Override
    public void run() {
        super.run();
        while (count > 0) {
            count--;
            System.out.println("由" + this.currentThread().getName()
            + "计算, count=" + count);
        }
    }

    public static void main(String[] args) {
        MyThread4 a = new MyThread4("A");
        MyThread4 b = new MyThread4("B");
        MyThread4 c = new MyThread4("C");
        a.start();
        b.start();
        c.start();
        /**
         * 每个线程都有各自的count变量，自己减少自己的count变量的值。这样的情况就是变量不共享
         * ，此实例并不存在多个线程访问同一个实例变量的情况。
         */
    }
}
